package 动态代理.JDK代理;

import java.lang.reflect.Proxy;


//mybatis就是通过JDK代理实现Mapper调用的
public class Test {
    public static void main(String[] args) {
        JavaDeveloper jDeveloper = new JavaDeveloper();
        Developer developer = (Developer)Proxy.newProxyInstance(jDeveloper.getClass().getClassLoader(),jDeveloper.getClass().getInterfaces(),(proxy,method,param)->{
            if(method.getName().equals("code")){
                System.out.println("code之前先分析");
                return method.invoke(jDeveloper,param);
            }
            if(method.getName().equals("debug")){
                System.out.println("我没有bug");
            }
            return null;
        });
        developer.code();
        developer.debug();


    }
}
